<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>
<body>

    <p></p>
    <p></p>
    <p></p>

    <script>

        // 循环  会结束的
        // 遍历   把所有的值搞一遍  不会提前结束 forEach遍历

        // for  循环
        // for in  对象遍历
        //   把属性当做字符串来看待的
        // forEach  数组遍历



        // 伪数组或者真数组  尽量不使用for in   []
        // 对象  {}   只用for in


        // for    循环    可以continue  可以break
        // forEach  函数   不可以提前终止(不能使用break,也不能continue),即使是return 


        // 不会提前终止  就可以使用forEach
        // 需要提前终止  就只能使用for





        // var arr = [1,2,3] ;    // {0:1 , 1:2 , 2:3 , length:3, push:function(){} }
        // console.log(arr);
        // // 3种方法都可以的、
        // for(var i in arr) {
        //     console.log(i);
        // }

        // var obj = {a:1 , b:2 , c:function(){}} ;
        // // 只能用for in
        // for(var key in obj) {
        //     console.log(key);   // a b c
        // }



        // 伪数组

        // function fn() {
        //     console.log(arguments);
        //     var res = 0 ;
        //     // 遍历arguments
        //     for(var i in arguments) {
        //         console.log(arguments[i]);
        //     }
        // }

        // fn(1,2,3,4);



        // var oPs = document.querySelectorAll('p') ;   // NodeList
        // for(var i in oPs) {
        //     console.log(oPs[i]);    // 除了那三个p之外，还会遍历其他的属性或方法
        // }

        // forEach 本质上是封装了for循环



        var arr = [1,2,3,4] ;
        arr.forEach(function(v , i) {
            if(i === 2) {
                // break ;
                return
            } 
            console.log(v);
        })









    </script>
    
</body>
</html>